package server.business.converter;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import org.springframework.stereotype.Component;

/**
 * @Author: 赵越
 * @Description: 退血原因数据字典转换
 * @CreateTime: 2023-04-05  09:26
 */
@Component
public class BackBloodReasonConverter implements Converter<String> {

    @Override
    public Class<String> supportJavaTypeKey() {
        return String.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }

    @Override
    public String convertToJavaData(CellData arg0, ExcelContentProperty arg1, GlobalConfiguration arg2)
            throws Exception {
        throw new UnsupportedOperationException("Unimplemented method 'convertToJavaData'");
    }

    @Override
    public CellData<String> convertToExcelData(String value, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        if (value == null) {
            return new CellData<>("");
        } else if (value.equals("01")) {
            return new CellData<>("ALT升高");
        } else if (value.equals("02")) {
            return new CellData<>("HBsAg反应性");
        } else if (value.equals("03")) {
            return new CellData<>("HCV抗原抗体联合检测反应性");
        } else if (value.equals("04")) {
            return new CellData<>("HIV抗原抗体联合检测反应性");
        } else if (value.equals("05")) {
            return new CellData<>("梅毒反应性");
        } else if (value.equals("06")) {
            return new CellData<>("黄疸指数高");
        } else if (value.equals("07")) {
            return new CellData<>("ABO血型亚型");
        } else if (value.equals("08")) {
            return new CellData<>("特殊抗体反应性");
        } else if (value.equals("10")) {
            return new CellData<>("过期血");
        } else if (value.equals("11")) {
            return new CellData<>("乳糜血");
        } else if (value.equals("12")) {
            return new CellData<>("凝块");
        } else if (value.equals("13")) {
            return new CellData<>("气泡");
        } else if (value.equals("14")) {
            return new CellData<>("破袋");
        } else if (value.equals("15")) {
            return new CellData<>("非标量");
        } else if (value.equals("16")) {
            return new CellData<>("析出");
        } else if (value.equals("17")) {
            return new CellData<>("保密性弃血");
        } else if (value.equals("18")) {
            return new CellData<>("标签破损");
        } else if (value.equals("19")) {
            return new CellData<>("HIV-DNA检测反应性");
        } else if (value.equals("20")) {
            return new CellData<>("HBV-DNA检测反应性");
        } else if (value.equals("21")) {
            return new CellData<>("HCV-RNA检测反应性");
        } else if (value.equals("22")) {
            return new CellData<>("冷凝集");
        } else if (value.equals("23")) {
            return new CellData<>("溶血");
        } else if (value.equals("24")) {
            return new CellData<>("脂肪血");
        } else if (value.equals("25")) {
            return new CellData<>("热合口漏");
        } else if (value.equals("26")) {
            return new CellData<>("血型错误");
        } else if (value.equals("27")) {
            return new CellData<>("血小板聚集");
        } else if (value.equals("28")) {
            return new CellData<>("人为差错");
        } else if (value.equals("99")) {
            return new CellData<>("其他");
        } else {
            return new CellData<>("错误数据");
        }
    }

}
